﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using System.ComponentModel;
using PubClub.GUI;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class Perfil : System.Web.UI.Page
    {       
        ObjetoCliente cliente = new ObjetoCliente();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        ObjetoRetornoCliente retornoWebServiceCliente;
        Utilizadades_WS util = new Utilizadades_WS();
        BindingList<Cidade> listaCidade = new BindingList<Cidade>();
        int id;
       

        # region metodo para carregar lista de estados
        public void carregarDropDownEstados()
        {
            BindingList<UF>  listaUF = new BindingList<UF>(util.Get_UFs());

            for (int i = 0; i < listaUF.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaUF[i].Nome;
                li.Value = listaUF[i].Id.ToString();
                DropDownListEstado.Items.Add(li);

            }
        }
        #endregion
        #region metodo para carregar lista de cidades ao clicaar no estado da dropdown list
        public void carregarDropDownCidades()
        {


            listaCidade.Clear();
            comboCidade.Items.Clear();
            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(Convert.ToInt32(DropDownListEstado.SelectedValue.ToString())));


            for (int i = 0; i < listaCidade.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaCidade[i].Label;
                li.Value = listaCidade[i].Id.ToString();
                comboCidade.Items.Add(li);

            }

        }
        #endregion

         

        protected void Page_Load(object sender, EventArgs e)
        {
            id = (Int32)Session["Cliente"];
            cliente = webServiceCliente.GetCliente(id);
            #region Macaras
            textboxCEP.Attributes.Add("onkeydown", "MascaraCep(this)");
            textBoxCPF.Attributes.Add("onkeydown", "MascaraCpf(this)");
            textBoxNumeroCelular.Attributes.Add("onekeydown", "MascaraTelefoneComDdd(this)");
            textBoxDataDeNascimento.Attributes.Add("onkeydown", "MascaraData(this)");
            #endregion
            
            AtualizandoForm(cliente);
            DesabilitandoComponentes();
        }

        #region
        private void AtualizandoBanco()
        {
            //Cidade ci = new Cidade();

            cliente.Nome = textBoxNomeComleto.Text.Trim();
            cliente.Nascimento = textBoxDataDeNascimento.Text.Trim();
            cliente.Senha = textBoxSenha.Text.Trim();
            cliente.Email = textBoxEmail.Text.Trim();
            cliente.Numero = textBoxNumeroCelular.Text.Trim();
            cliente.CPF = textBoxCPF.Text.Trim();
            cliente.CEP = textboxCEP.Text.Trim();
            cliente.Rua = textBoxRua.Text.Trim();
            cliente.Numero    = textBoxNumeroRua.Text.Trim();
            cliente.Complemento = textBoxComplemento.Text;
            //ci.UF_Id = Convert.ToInt32(DropDownListEstado.SelectedValue.ToString());
            cliente.CidadeId = Convert.ToInt32(comboCidade.SelectedValue.ToString());
            cliente.Bairro = textBoxBairro.Text.Trim();

             retornoWebServiceCliente = webServiceCliente.UpdateCliente(cliente.ClienteId, cliente.CPF, cliente.Nome, cliente.Email, cliente.Senha, cliente.Sexo,
                cliente.Nascimento, cliente.CEP, cliente.Rua, cliente.Numero, cliente.Bairro, cliente.CidadeId, cliente.Complemento);  
        }

        private void AtualizandoForm(ObjetoCliente cliente)
        {
            #region carregando combobox com informações do cliente
            if (!Page.IsPostBack)
            {
                UF uf = new UF();
                Cidade ci = new Cidade(); 
            ci = util.Get_Cidade(cliente.CidadeId);
            uf = util.Get_UF(ci.UF_Id); 

            BindingList<UF>  listaUF = new BindingList<UF>(util.Get_UFs());

            ListItem li = new ListItem();
            li.Text = uf.Nome;
            li.Value = uf.Id.ToString();
            DropDownListEstado.Items.Add(li);
           
            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(ci.UF_Id));

            ListItem li2 = new ListItem();
            li2.Text = ci.Label;
            li2.Value = ci.Id.ToString();
            comboCidade.Items.Add(li2);
            }
            #endregion

            if (cliente.Sexo == true)
            {
                ComboSexo.Text = "Masculino";
            }
            else
            {
                ComboSexo.Text = "Feminino";
            }
            textBoxNomeComleto.Text = cliente.Nome;
            textBoxDataDeNascimento.Text = cliente.Nascimento;
            textBoxSenha.Text = cliente.Senha;
            textBoxSenha2.Text = cliente.Senha;
            textBoxEmail.Text = cliente.Email;
            //textBoxNumeroCelular.Text = 
            textBoxCPF.Text = cliente.CPF;
            textboxCEP.Text = cliente.CEP;
            textBoxRua.Text = cliente.Rua;
            textBoxNumeroRua.Text = cliente.Numero;
            textBoxComplemento.Text = cliente.Complemento;
            textBoxBairro.Text = cliente.Bairro;
            
        }

        private void DesabilitandoComponentes()
        {
            textBoxNomeComleto.Enabled = false;
            textBoxDataDeNascimento.Enabled = false;
            textBoxEmail.Enabled = false;
            textboxCEP.Enabled = false;
            textBoxComplemento.Enabled = false;
            textBoxCPF.Enabled = false;
            textBoxBairro.Enabled = false;
            textBoxRua.Enabled = false;
            textBoxNumeroCelular.Enabled = false;
            ComboSexo.Enabled = false;
            textBoxSenha.Enabled = false;
            textBoxSenha2.Enabled = false;
            DropDownListEstado.Enabled = false;
            textBoxNumeroRua.Enabled = false;
            comboCidade.Enabled = false;
        }

        private void HabilitandoTextBox()
        {
            textBoxNomeComleto.Enabled = true;
            textBoxDataDeNascimento.Enabled = true;
            textBoxEmail.Enabled = true;
            textboxCEP.Enabled = true;
            textBoxComplemento.Enabled = true;
            textBoxCPF.Enabled = true;
            textBoxBairro.Enabled = true;
            textBoxRua.Enabled = true;
            textBoxNumeroCelular.Enabled = true;
            //ComboSexo.Enabled = true;
            //textBoxSenha.Enabled = true;
            textBoxSenha2.Enabled = true;
            DropDownListEstado.Enabled = true;
            textBoxNumeroRua.Enabled = true;
            comboCidade.Enabled = true;
        }
        #endregion

        protected void BtAlterar_Click(object sender, EventArgs e)
        {
            HabilitandoTextBox();
            carregarDropDownEstados();
            
            
        }

        
        protected void BtConfirmar_Click(object sender, EventArgs e)
        {
           
            AtualizandoBanco();

            //AtualizandoForm(cliente);

            if (retornoWebServiceCliente.Sucesso == true)
            {
                LabelAviso.ForeColor = System.Drawing.Color.Green;
                LabelAviso.Text = retornoWebServiceCliente.Menssagem;
                LabelAviso.Visible = true;

            }
            else
            {
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Text = retornoWebServiceCliente.Menssagem;
                LabelAviso.Visible = true;

            }
            
        }

        protected void BtInativar_Click(object sender, EventArgs e)
        {
            retornoWebServiceCliente = webServiceCliente.DeleteCliente(cliente.ClienteId);

            if (retornoWebServiceCliente.Sucesso == true)
            {
                LabelAviso.Text = "Cliente intivado";
            }

            else
            {
                LabelAviso.Text = "Operação não completada";
            }
            
        }

        protected void DropDownListEstado_SelectedIndexChanged(object sender, EventArgs e)
        {
            HabilitandoTextBox();
            
            carregarDropDownCidades();
            
        }

        


    }
}